import sympy as sym


def myNot(a):
    """
    Returns logical NOT result of a

    Args:
        a : symbolic expression.

    Returns:
        the result of not a (~a)
    """
    return sym.Not(a)


# Test case 1: Input is pure boolean
x1 = True
assert myNot(x1) == False
assert myNot(not x1) == True

# Test case 2: Input is boolean expressions
x1 = 10 > 20
assert myNot(x1) == True
assert myNot(not x1) == False

# Test case 3: int input
x1 = 5
assert myNot(x1) == False

x1 = 0
assert myNot(x1) == True

# Test case 4: Symbolic Expression
x, y = sym.symbols('x y')
assert myNot(x) == ~x
assert myNot(~x) == x
assert myNot(x & y) == ~(x & y)
